// 这个是后端导出excel的时候，前端要配合的方法，原理就是：当后端返回的是一个blod的数据的时候，要拿到blod的数据，变成一个a链接的下载链接，然后直接创建一个a链接，直接下载其中链接就行
// 列表信息导出(这里面有三个参数分别是查询条件，后端导出接口地址，文件名)
import axios from '../network/axios'
// export const exportExcel = (requireVo, excelUrl, fileName) => {
export const exportExcel = (params, fileName) => {
  return axios({
    method: 'GET',
    // url: excelUrl,
    url: '/stock',
    responseType: 'blob',
    // params: requireVo
    params
  })
    .then(function (response) {
      // 下面是原来的
      // console.log(response, 'json')
      let blob = new Blob([response.data])
      console.log(blob)
      let downloadElement = document.createElement('a') // 创建一个a标签
      let href = window.URL.createObjectURL(blob) //创建下载的链接 // 把返回的数据，创建成一个下载链接
      console.log(href)
      downloadElement.href = href //  然后变成a 标签的链接
      downloadElement.download = fileName //下载后文件名
      document.body.appendChild(downloadElement)
      downloadElement.click() //点击下载
      document.body.removeChild(downloadElement) //下载完成移除元素
      window.URL.revokeObjectURL(href) //释放掉blob对象
    })
    .catch(function (error) {
      console.log(error, '在error的逻辑')
    })
}

// 判断是否能导出的接口 （ps:先判断，通过之后，才能调用上面的方法）

// 判断是true还是false才去导出接口
export const isBoolean_isExport_excel = (params) => {
  return axios({
    method: 'GET',
    url: '/checkStockExport',
    params
  })
}

// 列表信息导出(这里面有三个参数分别是查询条件，后端导出接口地址，文件名)
export const exportExcel_2 = (requireVo, excelUrl, fileName) => {
  return axios({
    method: 'get',
    url: excelUrl,
    responseType: 'blob',
    data: requireVo
  })
    .then(function (response) {
      let blob = new Blob([response.data])
      let downloadElement = document.createElement('a')
      let href = window.URL.createObjectURL(blob) //创建下载的链接
      downloadElement.href = href
      downloadElement.download = fileName //下载后文件名
      document.body.appendChild(downloadElement)
      downloadElement.click() //点击下载
      document.body.removeChild(downloadElement) //下载完成移除元素
      window.URL.revokeObjectURL(href) //释放掉blob对象
    })
    .catch(function (error) {
      this.$message.error(error)
    })
}
